In a typical virtual desktop infrastructure (VDI) architecture, displays and input devices are local, and applications execute remotely in a server. A user's desktop is typically hosted in a datacenter or cloud, and the user remotely interacts with her desktop via a variety of endpoint devices, including desktops, laptops, thin clients, smart phones, and tablets. There are many other instances where users may interact with a computer system remotely.